package fun.boomcat.luckyhe.mirai.plugin.utils;

import net.mamoe.mirai.console.command.CommandManager;

public class OpCommandHelp {
    public static String helpStr(String primaryName, String[] secondaryNames) {
        StringBuilder sb = new StringBuilder();
        String commandPrefix = CommandManager.INSTANCE.getCommandPrefix();

        sb.append(commandPrefix).append(primaryName).append("指令 ");
        if (secondaryNames.length != 0) {
            sb.append("别名：");
            for (String secondaryName : secondaryNames) {
                sb.append(commandPrefix).append(secondaryName).append(" ");
            }
        }
        sb.append("\n");

        sb.append(commandPrefix).append(primaryName).append(" init（别名：初始化）    初始化数据库\n");
        sb.append(commandPrefix).append(primaryName).append(" setmcid（别名：设置mcid）    设置某玩家qq与mcid的映射关系\n");
        sb.append(commandPrefix).append(primaryName).append(" addmap（别名：添加映射）    添加一条指令映射\n");
        sb.append(commandPrefix).append(primaryName).append(" delmap（别名：删除映射）    删除一条指令映射\n");
        sb.append(commandPrefix).append(primaryName).append(" listmap（别名：所有映射）    显示所有映射");

        return sb.toString();
    }

    public static String setMcIdHelpStr(String primaryName, String[] secondaryNames) {
        String commandPrefix = CommandManager.INSTANCE.getCommandPrefix();

        return commandPrefix + primaryName + " setmcid <@群成员或QQ号> <mcid>    将该人qq与某mcid绑定（指定qq时可使用@）";
    }

    public static String addMapHelpStr(String primaryName, String[] secondaryNames) {
        String commandPrefix = CommandManager.INSTANCE.getCommandPrefix();
        StringBuilder sb = new StringBuilder();

        sb.append(commandPrefix).append(primaryName).
                append(" addmap -s <从玩家接收的指令> -m <对应的op指令> -d <对于该指令的描述>\n\n");
        sb.append("以格式#{参数名}作为参数，#{playername}为玩家名\n");


        return sb.toString();
    }

    public static String delMapHelpStr(String primaryName, String[] secondaryNames) {
        String commandPrefix = CommandManager.INSTANCE.getCommandPrefix();
        StringBuilder sb = new StringBuilder();

        sb.append(commandPrefix).append(primaryName).
                append(" delmap -s <从玩家接收的指令> -m <对应的op指令> -d <对于该指令的描述>\n\n");
        sb.append("以格式#{参数名}作为参数，#{playername}为玩家名\n");


        return sb.toString();
    }

    public static String addMapExampleStr(String primaryName, String[] secondaryNames) {
        String commandPrefix = CommandManager.INSTANCE.getCommandPrefix();

        StringBuilder sb = new StringBuilder();
        sb.append("例：\n");
        sb.append(commandPrefix).append(primaryName).append(" addmap -s gamemode #{a} -m gamemode #{a} #{playername} -d 用于切换游戏模式的指令\n\n");
        sb.append("当Lucky_He在qq输入").append(commandPrefix).append("/ gamemode creative时，执行的实际指令是gamemode creative Lucky_He");

        return sb.toString();
    }
}
